home *** CD-ROM | disk | FTP | other *** search
/ Developer Helper 1: Phil & Dave's Excellent CD / Excellent CD HFS.raw / Moof / Goodies / HyperCard Goodies / Serial Toolkit / Source Code / breakSPort.p next >
Text File  |  1988-11-18  |  2KB  |  77 lines

  1. (*
  2.     breakSPort  trueOrFalse -- Send or clear a break on the serial port.
  3.  
  4.     To compile and link this file using Macintosh Programmer's Workshop,
  5.  
  6.         pascal -w breakSPort.p
  7.         link -m ENTRYPOINT -o HyperCommands -rt XCMD=7030 -sn Main=breakSPort ∂
  8.             breakSPort.p.o "{MPW}"Libraries:interface.o
  9.  
  10.     © Copyright 1987, 88 by Apple Computer, Inc.
  11.  
  12.     Initial coding 9/87 by Harry R. Chesley.
  13. *)
  14.  
  15. {$R-}
  16.  
  17. {$S breakSPort }     { Segment name must be the same as the command name. }
  18.  
  19. unit DummyUnit;
  20.  
  21. interface
  22.  
  23. uses MemTypes, QuickDraw, OSIntf, HyperXCmd;
  24.  
  25. procedure EntryPoint(paramPtr: XCmdPtr);
  26.     
  27. implementation
  28.  
  29. type
  30.  
  31. Str31 = String[31];
  32.  
  33. procedure breakSPort(paramPtr: XCmdPtr); forward;
  34.  
  35. procedure EntryPoint(paramPtr: XCmdPtr);
  36.  
  37.     begin
  38.         breakSPort(paramPtr);
  39.     end;
  40.  
  41. procedure breakSPort(paramPtr: XCmdPtr);
  42.  
  43.     var onOff: Str255;
  44.         doBreak: boolean;
  45.  
  46.     {$I XCmdGlue.inc}
  47.  
  48.     procedure Fail(errMsg: Str255); { set theResult and quit }
  49.         begin
  50.             paramPtr^.returnValue := PasToZero(errMsg);
  51.             exit(breakSPort);
  52.         end;
  53.  
  54.     {$I SPortUtil.inc}
  55.  
  56.     begin
  57.         if paramPtr^.paramCount <> 1 then Fail('parameter count is not 1');
  58.  
  59.         SetUpSPortGlobals;
  60.         EnsureOpenPort;
  61.  
  62.         GetStrParm(1,onOff);            { First parameter is setting. }
  63.         doBreak := false;
  64.         if StringEqual(onOff,'true') or StringEqual(onOff,'on') then doBreak := true;
  65.  
  66.         if doBreak then
  67.             begin
  68.                 if SerSetBrk(ThisSPort.portOutDev) <> noErr then Fail('SerSetBrk failed');
  69.             end
  70.         else
  71.             begin
  72.                 if SerClrBrk(ThisSPort.portOutDev) <> noErr then Fail('SerClrBrk failed');
  73.             end;
  74.     end;
  75.  
  76. end.
  77.